Digital photography involves capturing color images and then converting those color images into numbers. There are many different ways to turn color images into numbers, and these may be termed “color models”. For example, “RGB” is one color model that relies on the three primary colors, red, green, and blue to be mixed together in differing amounts to yield all of the remaining colors. Another color model is known as CMYK, which uses cyan (C), magenta (M), yellow (Y), and black (K), the primary colors of pigment to create all of the necessary colors.
Each of these different color models can be used to define a specific color space. For example, to create a three-dimensional representation of a color space, the amount of magenta color can be assigned to the representation's X axis, the amount of cyan to its Y axis, and the amount of yellow to its Z axis. This forms a three dimensional color space that has one three dimensional position for each possible color in the color space.
However, it is sometimes necessary to convert from one color space to another. For example, computer monitors typically display colors using an RGB color space, although the image being displayed may have been encoded using a different color space. Many current graphics processors include functions for transforming colors. However, in many cases, color transformations involve complex nonlinear functions, thus making it impractical to transform colors for large images in real time on a per pixel basis. Color look-up tables (LUTs) are used to transform input color signal representations into output color signal representations which can be applied to drive a color display. Such transformations are necessary because color displays commonly have non-linear input to output signal transformation characteristics. Ideally, for a given input value, a LUT generates a corresponding output value that precisely cancels the effects of a display's non-linearity so that colors appearing on the display accurately correspond to the colors defined by the input color signal representations. The LUT may be embedded in a hardware imaging system, or may be implemented via image processing software.
A typical LUT contains representations of different input color signals which are preselected to span the range of input drive signals that may be encountered during normal operation of the display. For each input color signal representation, the LUT also stores either a corresponding output color signal representation or information which can be used to derive a corresponding output color signal representation. As explained below, an input color signal representation is processed by extracting its closest corresponding output color signal representation from the LUT, or by using the information stored in the LUT to derive an output color signal representation which most closely corresponds to the input color signal representation. The extracted or derived output color signal representation is applied to drive the display.
Three dimensional look up tables, or “3D LUTs”, have been used to map one color space on a three dimensional cube to another. For example, a 3D LUT may be used to map a sRGB image to the red, green and blue (RGB) signals required for an OLED panel or other display device that does not have the color gamut of sRGB.